23

» WarCraft 3 / Функция ResetTrigger()

Похожие вопросы:

ответ
события самому нельзя удалить, они удаляются лишь когда обьект завязанный на него не существует
ответ
Astra, не останавливает он действия
из визуального ничего
возможно он как то связан с синхронизацией но это только теория
ответ
Sync функции нужны для синхроеизации локальных данных через кеш.

23

» WarCraft 3 / Вопрос по хеш таблице

Похожие вопросы:

ответ
А еще лучше - скинуть ссыль на какую-нибудь статью со списком callчто-то там команд.
ответ
событие - юнит получает урон
условие - юнит получивший урон имеет баф (баф стрелы)
Pippetz, лучше не яд а ледяные стрелы

23

» WarCraft 3 / Способность которая действует по все карте

Похожие вопросы:

ответ
Хозяин Миров, боже
делаем дами ауру
потом всем у кого есть баф ауры даём бонусы скрытым спелбуком
когда баф исчезает убираем бонусы
ответ
N7 Molot:
Воу... Джаз не обязательно изучать, всё это можно сделать и на ГУИ, тем более такую простую способность. На этом сайте есть тема "Заклинания на заказ". Заказывай, жди, получай, изучай. Если прям горит, могу сделать для тебя сам.

23

» WarCraft 3 / Движение, jass

Похожие вопросы:

ответ
Kinade, изучай на здоровье
ответ
Во-первых, что есть "локальный таймер" ? Это таймер записанный в локальную переменную?
Во-вторых, зачем тебе точка, если ты используешь XY ? Работай с ними
В-третьих, да. Использование в течении всей игры одной заранее созданной точки вызывает меньше нагрузки чем постоянно создание и удаление новых (кто-то там доказывал на примере и цифрами что от ремувнутых точке всё равно остаётся шлак в памяти...)
ответ
Вместо функции SetUnitPosition используй SetUnitX, SetUnitY.
call SetUnitX(GetEnumUnit(), x)
call SetUnitY(GetEnumUnit(), y)
ответ
Всё, понял как сделать
ответ
Думаю, что автор имел ввиду снаряд, который летит не по прямой к цели, а по зигзагу.
Вот так

23

» WarCraft 3 / Как делать проверку на...

Похожие вопросы:

ответ
Видел у одного картостроителя был триггер на Джасе...
Ну так изучай JASS. База статей у нас полная. По сути, почти всё что я знаю - заслуга этого сайта.
ВАРИОР 3ТО ТbI?
ответ
Выбираешь юнитов в области и делаешь проверку:
(IsUnitType(GetEnumUnit(), UNIT_TYPE_TOWNHALL).
Ну ещё нужно проверить, является ли выбранная ратуша противником конкретного игрока.
Если да, то послать туда войска и т. д.
ответ
и перед этим всем действом надо вставить set bj_wantDestroyGroup = true чтоб группа не утекала

23

» WarCraft 3 / Динамический триггер ?!

Похожие вопросы:

ответ
Событие никак и никогда не удаляется, поэтому будет висеть.
Лагать не должно, т.к. событие просто висит в памяти и вар может только вылететь с fatal'ом при нехватки памяти. Для этого этих событий должно быть десятки тысяч, наверное....
ответ
bladget, блин, посмотри как все делают, примеров 100500.
ответ
nvc123, насколько я помню - отключение не помогало, только уничтожение.
ответ
Kind Ram, еще внезапно есть - это
Там изи детект всех видов урона и есть даже пример как это сделать....

23

» WarCraft 3 / Как сделать триггер по типу..

Похожие вопросы:

ответ
Вам сюда, господин хороший. Там есть ответы, практически, на все ваши вопросы.
ответ
никак, ты говоришь о несовместимых модификаторах
ответ
Ну какая попытка, такая и помощь: делаешь таймер в период 1 сек. Забиваешь для него функцию на текстаг+ переменная, считающая время. ВУАЛЯ! Ой стоп. У тебя же так же написано. Реализуй- поможем.
ответ
сделать базу даных по названию...
строка[1] = "пехотинец"
строка[2] = "паладин"
тип юнита[1] = пехотинец
тип юнита[2] = паладин
цыкл
если введенная строка == строка[А]
создать юнита тип юнита[А]
ответ
Создать юнита который будет сидеть в кустах и кастовать скиллы.

23

» WarCraft 3 / событие нажатие на юнита

Похожие вопросы:

ответ
Нужно создать переменную-юнит (массив) ну как Heroes на первом снимке. Сохранить soul первого игрока с индексом 1, второго - 2 и т. д. (Soul[1], Soul[2]...). И вместо Triggering unit использовать эту переменную, а в качестве индекса - номер триггерного игрока.

23

» WarCraft 3 / Smart stop

Похожие вопросы:

ответ
1.Stop - Стоп
2.Attack - Атаковать
3.Move/Run - Движение
4.Smart - ПКМ
5.Harvest - сбор ресурсов
6.Patrol - патруль
7.holdposition - удержание позиции
ответ
NewToJass, vjass это диалект
он ничего не убирает а лишь дополняет
если в vjass чтото не работает то и в jass это тоже не работает
ответ
Можно дать юниту какую-нить абилку и все время через Force UI Key заставлять игрока ее нажимать пока этот юнит выбран
И как только он эту абилку использует, значит меню закрыто

23

» WarCraft 3 / Отрицательный реген

Похожие вопросы:

ответ
Такс я всё проверил, к сожалению при отрицательных значениях интеллекта и силы - дегенерации не наступает, так что всё враки, игровые константы на 0, регена нет, пилите триггерный реген и всё ок, следовательно всё получится. Так что я не понимаю проблемы.
у Extremator, как я понял на тестах не стоит константа на регенерацию в 0, поэтому и стандартный реген работет в отрицательную сторону по той же формуле
Герой моментально умирает при достижении 0 максимального хп, я думал что фатальнёт

23

» WarCraft 3 / Отслеживание приказов

Похожие вопросы:

ответ
событие "юнит атакован" срабатывает перед каждой атакой в момент замаха
событие "юнит получает урон" (Specific unit event) срабатывает перед нанесением урона, но это событие нужно добавлять другим триггером отдельно для каждого юнита (Trigger - Add new event)

23

» WarCraft 3 / Disease cloud

Похожие вопросы:

ответ
Просто для информации, судя по самому баффу - это таймер длительности, вероятно близзарды хотели сделать таймер длительности, но передумали.

23

» WarCraft 3 / Помогите создать способность

Похожие вопросы:

ответ
Событие:
Юнит начинает применять способность
Условие:
Применяемая способность [Способность 1]
Действие:
Удалить [Способность 1] у [Переключающий юнит]
Добавить [Способность 2] [Переключающий юнит]
ответ
Steal nerves:
Дать/отнять способность легко. А вот как отследить это, что он отошел и прочее. Надо подумать, нужно делать так, чтобы утечек, и нагрузок было меньше. Смотря как делать:
юнит привязан к участку
Если привязан юнит к одному участку, как здание например. То можно по событию - юнит входит / юнит выходит в область. Это типа как в Survival Chaos, там башеньки всю игру стоят, пока всех не уничтожат.
xgm.guru/p/100/180244 двигать не получится
Если юнит динамически сменяет локацию
не может привязан к одному участку. Но есть несколько способов:
  1. Вот отследить еще можно "событие - юнит замечен в радиусе ...", только вот нельзя отследить когда отходит, только когда входит. Примечательно, тем то не привязан к участку.
  2. Проверяешь периодически расстояние между юнитом и героем. Если расстояние больше предназначенного, то убавляем защиту. В этом нам помогает группа +pick units и подсчет кол-ва юнитов.
  3. Аналогично как в во втором способе, но может еще попробовать с аурой. Проверяешь есть аура. нет ауры.
ответ
что за костыли блин
событие - приводит способность в действие
условие - применённая способность == божественный щит
действия:
unit u=GetTriggerUnit()
SetUnitVertexColor(u,0,0,0,255)
TriggerSleepAction(15) // здесь указываем время действия способности
SetUnitVertexColor(u,255,255,255,255)
если время действия зависит от уровня то юзай арифметику как писали выше
в твоём случае это 2 + (уровень способности * 2)
ответ
XGM Bot:
Похожие вопросы:

ответ
  1. прячем героя, вешаем дамми или эффект на цель
делаем проверку на нейтрала, если да - даем контроль и скилл для выхода
  1. при событии входа в регион делаем проверку на наличие предмета
если есть - делаем нужное действие

все необходимые действия и проверки есть в триггерах
если попытки действительно имели место - в студию


23

» WarCraft 3 / Кол-во героев

Похожие вопросы:

ответ
Король_и_шут, на сайте есть наработка древа способностей "по мотивам" Диабло2.
ответ
WW перестаёт становиться DIS, когда у героя более одной абилки WW
типа что бы ты мог активировать другой, пока работает первый... но разблокировка идёт на все сразу (и на сам себя тоже)
ответ
Absorb мб
ответ
~8gabriel8:
Недавно сделал человеку универсальный триггер для таких случаев, который работает и в алтаре, и в таверне.
Событие: Юнит входит в область (Вся игровая карта)
Условие: (Триггеринг юнит) равно Герой равно Да
Действие: Игрок - Установить лимит юнита (тип юнита (Триггеринг юнит)) для игрока (Owner of unit (Триггеринг юнит)) в 1

23

» WarCraft 3 / Загрузка игры ?

Похожие вопросы:

ответ
ApEJI, тебе сказали
сделай бекап и удали весь импорт и ро и попробуй ещё раз
ответ
Это же Фелвуд? Возможно сбились настройки функции SetDayNightModels( ), которая прописана в main.
native SetDayNightModels takes string terrainDNCFile, string unitDNCFile returns nothing
ответ
~8gabriel8:
Absolute, есть событие загрузки игры, можешь поставить там логическая_переменная=Да, а в действиях с удалением молнии поставить Если/То/Иначе, где Если условие логическая_переменная=Нет, То удалить молнию, Иначе ничего не делать
ответ
Ну я был бы удивлен если бы код работал даже в сингле, гуи карта, много утечек, куча переодиков, так на первый взгляд код не учитывает что игроков будет много и все они что то будут делать. Так же возможны десинхи из-за кривого кода, это и на гуи бывает... Огромное кол-во вейтв и циклов с вейтами, это сразу убирайте - в мультиплеере это работать не будет.
Увы конечно интересная задумка карты, но реализация очень слабая и на игру по сети не претендует, более грамотно продумывайте код и не плодите утечки, то их у вас овер дофига что равно игра закроется с фаталом после превышения лимита памяти.

23

» Администрация XGM / Ссылки на статьи в профиле пользователя

Похожие вопросы:

ответ
Если пишет что ресурсы отсутствуют, то значит они отсутствуют (ваш кэп). Значит например у пользователя пустой блог.
Насчет того что в статьях, о проблеме известно, она решается.

23

» WarCraft 3 / Перевод

Похожие вопросы:

ответ
Severity, нету редактора с названием "New Gen WE"
полагаю у тебя стоит jngp
тогда открываем ресурс с jngp и читаем то что выделено красным
Редактор несовместим с русификатором триггеров.
ответ
Бордер, у меня уже давно валяется W3MLocalizer.exe , погугли, посмотри как работает, мб тебе подойдёт
ответ
XGM Bot:
Похожие вопросы:

ответ
Мне не тру. Подсказываю самый простой способ:
  • Для начала, стоит скачать карту, которую хочешь перевести. Очень важно, чтобы она была не на русском, иначе перевод карты теряет смысл.
  • Открыть карту в World Editor.
  • Если карта запротекчена, нужно воспользоваться программой по взлому. Их очень легко найти самостоятельно.
  • Карта открыта. Теперь можно переводить её. Для этого стоит пройтись по редактору объектов и игровому интерфейсу.
  • Если есть сложности с переводом, можно воспользоваться гугл-переводчиком. Но содержание углепластика в тексте карты резко возрастёт.
  • Сохраняем карту.
  • ???
  • PROFIT!
На правах капитана.
ответ
Пиши текст с начала в онлайн декодере , после перекодируй вот так:[UTF-8(русский текст)>CP1251(кодировка варика)] и результат вставь в карту.
ответ
Крашлог и карту желательно, мб где то пропустили скобку?
ответ
Бордер, у меня уже давно валяется W3MLocalizer.exe , погугли, посмотри как работает, мб тебе подойдёт
ответ
у каждого формата свой алгоритм,вот из за этого такая разница ,особенно на вес блп влияет прозрачность что лутше прозрачные места которые не затрагивает меш красить чёрным цветом


23

» WarCraft 3 / Группа типов юнитов

Похожие вопросы:

ответ
тебе для начала надо научится пользоваться группами
прочти статьи ибо ты написал бред в вопросе
ответ
решил проблему костылём - дал возможность рабочему строить только башню - шаблонку, которая в свою очередь может улучшаться в две указанные башни. Взаимосвязь поставить только от башни - шаблонки. Лимит поставил на башню шаблонки.
Но тема не закрыта. Хотелось бы узнать можно ли решить проблему без костылей.
ответ
magistor8, получится цензура цензура
да и всеравно придётся перебирать всех юнитов в группе чтобы узнать их количество
только вместо одной строки с ифом у тебя будет вложенный цикл с проверкой юнитов
так что делай как сказали ssbbssc и l_Avenger_l (они походу не въехали что предлагают один и тот же вариант)
если надо знать сколько юнитов каждого (а не 1 конкретного) типа в группе то их вариант можно немного улучшить
вместо обычной целой переменной юзай массив целых
и в цикле делай проверку что если юнит принадлежит первому типу то массив[1]++ (увеличить значение на единицу)
если второму то массив[2]++
и т.д.
в результате за 1 пробег цикла ты получишь массив который будет содержать количество юнитов каждого типа
а если ты хочешь ещё оптимальнее то вместо проверки "если юнит принадлежит n-ному типу" юзай бд на основе хеш таблицы которая по равкоду юнита будет хранить его индекс в массиве
либо любой другой способ преобразовать равкод юнита в целое число которое >=0 и <8192
ответ
darkowlom, нужен 1 массив и 1 функция
примерно так будет выглядеть
int types[];

bool myBoolExp(){
	return GetUnitTypeId(GetFilterUnit())==types[GetPlayerId(GetOwningPlayer(GetFilterUnit()))];
}

...
types[GetPlayerId(myPlayer)]=myType;
GroupEnumUnitsOfPlayer(myGroup, myPlayer, function myBoolExp);
либо перебирать группу вручную
unit Picked
group myGroup
...
GroupEnumUnitsOfPlayer(myGroup, myPlayer, null);
loop{
	Picked = FirstOfGroup(myGroup)
exitwhen Picked == null
	GroupRemoveUnit(myGroup,Picked)
}
в данной ситуации лучше использовать первый вариант
ответ
Ну только триггерные системы отрядов, была такая...
Вот пример ссылочка
Были и другие, поиск в помощь.
Вот еще ссылка

23

» WarCraft 3 / Юнит получает предмет

Похожие вопросы:

ответ
Примерно так, только вместо класса - тип предмета.
Событие - Юнит получает предмет.
Ну и можно кинуть предмет не из слота, а подобранный.
ответ
Таурен Тауреныч, так ты ж его мгновенно удаляешь. Зачем добавлять и сразу убирать способность? Или удаляется предмет, а не скилл?
Попробуй удалять хотя бы через 0.00 сек.
Прочитал твой второй вопрос по этой теме. Всё-таки да, дело было в мгновенном удалении.
ответ
Мб твой герой не может использовать предметы?
Я сам лично сувал эту абилку в предметы и давать героям - всё работало.
И да, событие это работает. Возможно тоже допускаешь ошибки
И да, скорее всего не "подобранный предмет", а "предмет которым манипулируют".
ответ
Вот, слегка модифицировал твой вариант. Лучше, найти какую-нибудь готовую систему, ибо предметы всегда будут перемещаться, да и с полным инвентарем не корректно работает.
ответ
~8gabriel8:
К сожалению, я нашёл лишь условие "количество предметов у юнита" о типе предметов, там нет и речи
Верно, мой косяк. Надо циклом перебирать предметы. Вот карта с триггером и скрин:

23

» WarCraft 3 / Проблемы с регенерацией

Похожие вопросы:

ответ
Патиссончик, про центр области не заметил
точка каждый раз создаётся заново и это утечка
Патиссончик, есть прога на сайте для записи логов
так же есть дебаг через прелоад на сайте
вот счётчик утечек

23

» WarCraft 3 / Таверна

Похожие вопросы:

ответ
Дело не в ландшафте. Список доступных героев редактируется в РО: Технологии - Войск продано.
ответ
Steal nerves:
xgm.guru/p/100/192363?postid=352424#comment2 с помощью приказов. Используй нктивки с имитацией' там где с магазином. Ещё нужно кучу проверок делать (есть ли ресурсы, хватает пищи и др). Вдруг пригодится
Есть две разные вещи - тренировка и покупка (найм). При тренировке ты можешь заставить здание само начать обучать войска' а вот при найме нужно чтобы к магазину подошёл юнит и он был выбран магазином (точно не уверен нужен ли здесь нацеливать выбор магазинчика, через приказ smart кажись нацеливает выборку на юнита, если правильно понял пример Warden. Приказ возвращает boolean, если что). Смотри в ссылке пример Warden-a
Понимаешь, вроде когда герой выбирает через smart магазин, у игрока на панеле по идее должны быть изображены итемы или юниты, которых продают. Вроде герой должен выбирать магазин, а не наоборот?! Странно. Хотя, попробуй ещё героем выбрать. Хотя это комп.
ответ
Steal nerves, для такой системы достаточно локалка + вейт
и ненужны никакие массивы и хэштаблицы
локалки как раз обеспечивают муи

23

» WarCraft 3 / Таймер или триггер таймер что лучше?

Похожие вопросы:

ответ
Вам сюда, господин хороший. Там есть ответы, практически, на все ваши вопросы.
ответ
Ну, перенеси всё это clawbfs.ucoz.ru/forum/3-2-1 и итемы и две игровые карты с кучей режимов и сотни шапок и т. д. + в 2 раза больше новых идей clawbfs.ucoz.ru/forum/7 clawbfs.ucoz.ru/forum/16-1571-1 clawbfs.ucoz.ru/forum/9 со всеми функциями варкрафта (а их там всё же не так уж и мало) в игру на юнити или ещё куда в один присест, сделай дело доброе.
Бтв, про сбор команды - для продвинутых сущностей нередко исправлять за другими оказывается тяжелее, чем делать самому, важно создать максимально комфортные условия для созидания, вот для чего деньги не лишние, а уж дело и самому можно делать.
И, да, тема-то не про то, надо это или не надо, а про то, как лучше это сделать, я про это и в стартовом сообщении написал.
Я на крайний сам вопрос по варианту 3 проверю и/или будет сделан выбор между третьим вариантом, вторым, каким-то ещё и отказом от Cooldown Reduction, но если кто поможет - спасибо.
ответ
Лимит операций, обычно это беда настигает заядлых гуишников.
На jass обычно нету таких проблем.
Создайте таймер с периодом .00 сек и запускайте им функции инициализации триггеров.
функция типа InitTrig_Имя триггера - это функция инициализации триггера, она вызывается из функции InitCustomTriggers, но если этих вызовов очень много то функция упирается в лимит операций и поток завершается так и не создав все триггеры.
ответ
Если в триггере много действий, загружающих память, то лучше не использовать малый период. А если в нём ещё утечки памяти, то рано или поздно лаги сделают игру невозможной.
По сути, и таймер, и периодическое событие запускают действия в определённое время, то есть действуют одинаково. Смотри, что тебе удобнее.
ответ
юзай событие юнит получает урон навешанное на каждого юнита
а это ресурсозатратно
ерунду не неси
если хочешь сделать всё очень оптимально то узнай для начала как работает система событий
или вообще юзай екзекют
Diaboliko:
событие получения урона сразу для всех юнитов
это было и до мемхака
вообще бесит когда люди которые не шарят в работе вара начинают выдумывать проблемы а потом искать их решение